//package psn.zjk.springboot.jdbc.druid;
//
//import com.alibaba.druid.pool.DruidDataSource;
//import com.alibaba.druid.support.http.StatViewServlet;
//import com.alibaba.druid.support.http.WebStatFilter;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
//import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//
//import javax.servlet.Filter;
//import javax.servlet.Servlet;
//import javax.servlet.ServletContextListener;
//import javax.sql.DataSource;
//import java.util.Arrays;
//import java.util.HashMap;
//
////@Configuration
//public class DruidConfig implements WebMvcConfigurer {
//
//    @ConfigurationProperties(prefix = "spring.datasource")
//    //	@ConfigurationProperties(prefix="spring.dataSource")
//    @Bean public DataSource druid() {
//        //		避免直接调用Druid相关对象例如DruidDataSource等，相关调用要到DruidStatManagerFacade里用反射实现
//        //		DruidStatManagerFacade.getInstance().getDruidDataSourceById(identity)
//        return new DruidDataSource();
//
//    }
//
//    //自定义内嵌servlet容器后，需要自行实现web.xml的内容，需要实现以下三个bean==========================
//
//    //	@WebServlet(urlPatterns = "/druid/*",
//    //		    initParams = {
//    //		        @WebInitParam(name = "allow", value = "127.0.0.1,192.168.163.1"),// IP白名单(没有配置或者为空，则允许所有访问)
//    //		        @WebInitParam(name = "deny", value = "192.168.1.73"),// IP黑名单 (存在共同时，deny优先于allow)
//    //		        @WebInitParam(name = "loginUsername", value = "admin"),// 用户名
//    //		        @WebInitParam(name = "loginPassword", value = "123456"),// 密码
//    //		        @WebInitParam(name = "resetEnable", value = "false")// 禁用HTML页面上的“Reset All”功能
//    //		    })
//    @Bean ServletRegistrationBean<Servlet> statViewServlet() {
//        ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<Servlet>(new StatViewServlet(), "/druid/");
//        HashMap<String, String> initParameters = new HashMap<String, String>();
//        initParameters.put("loginUsername", "admin");
//        initParameters.put("loginPassword", "1");
//        initParameters.put("allow", "");
//        initParameters.put("deny", "");
//        bean.setInitParameters(initParameters);
//        return bean;
//    }
//
//    @Bean FilterRegistrationBean<Filter> filterRegistrationBean() {
//        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<Filter>();
//        bean.setFilter(new WebStatFilter());
//        HashMap<String, String> initParameters = new HashMap<String, String>();
//        initParameters.put("exclusions", "*.js,*.css,/druid/*");
//        bean.setInitParameters(initParameters);
//        bean.setUrlPatterns(Arrays.asList("/*"));
//        return bean;
//    }
//
//    @Bean ServletListenerRegistrationBean<ServletContextListener> servletListenerRegistrationBean() {
//        //允许的泛型查看ServletListenerRegistrationBean源码
//        ServletContextListener listener = new ServletContextListener() {
//
//        };
//        return new ServletListenerRegistrationBean<ServletContextListener>(listener);
//    }
//
//    //=================================
//}
